[][src]Crate jemalloc_sys

Rust bindings to the jemalloc C library.

jemalloc is a general purpose memory allocation, its documentation can be found here:

jemalloc exposes both a standard and a non-standard API.

Standard API

The standard API includes: the malloc, calloc, realloc, and free, which conform to to ISO/IEC 9899:1990 (“ISO C90”), posix_memalign which conforms to conforms to POSIX.1-2016, and aligned_alloc.

Note that these standard leave some details as implementation defined. This docs document this behavior for jemalloc, but keep in mind that other standard-conforming implementations of these functions in other allocators might behave slightly different.

Non-Standard API

The non-standard API includes: mallocx, rallocx, xallocx, sallocx, dallocx, sdallocx, and nallocx. These functions all have a flags argument that can be used to specify options. Use bitwise or | to specify one or more of the following: MALLOCX_LG_ALIGN, MALLOCX_ALIGN, MALLOCX_ZERO, MALLOCX_TCACHE, MALLOCX_TCACHE_NONE, and MALLOCX_ARENA.

Environment variables

The MALLOC_CONF environment variable affects the execution of the allocation functions.

For the documentation of the MALLCTL namespace visit the jemalloc documenation.

Structs

extent_hooks_s

Extent lifetime management functions.

Constants

MALLOCX_ZERO

Initialize newly allocated memory to contain zero bytes.

Statics

malloc_conf

Compile-time string of configuration options.

malloc_message

Allows overriding the function which emits the text strings forming the errors and warnings if for some reason the STDERR_FILENO file descriptor is not suitable for this.

Functions

MALLOCX_ALIGN

Align the memory allocation to start at an address that is a multiple of align, where a is a power of two.

MALLOCX_ARENA

Use the arena specified by the index a.

MALLOCX_LG_ALIGN

Align the memory allocation to start at an address that is a multiple of 1 << la.

MALLOCX_TCACHE

Use the thread-specific cache (tcache) specified by the identifier tc.

MALLOCX_TCACHE_NONE

Do not use a thread-specific cache (tcache).

aligned_alloc

Allocates size bytes of memory at an address which is a multiple of alignment.

calloc

Allocates zero-initialized space for an array of number objects, each of whose size is size.

dallocx

Deallocates previously-allocated memory region referenced by ptr.

free

Deallocates previously-allocated memory region referenced by ptr.

mallctl

General interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions.

mallctlbymib

Like mallctl but taking a mib as input instead of a name.

mallctlnametomib

Translates a name to a “Management Information Base” (MIB) that can be passed repeatedly to mallctlbymib.

malloc

Allocates size bytes of uninitialized memory.

malloc_stats_print

Writes summary statistics via the write_cb callback function pointer and cbopaque data passed to write_cb, or malloc_message if write_cb is null.

malloc_usable_size

Returns the real size of the previously-allocated memory region referenced by ptr.

mallocx

Allocates at least size bytes of memory according to flags.

nallocx

Returns the real size of the allocation that would result from a mallocx function call with the same arguments.

posix_memalign

Allocates size bytes of memory at an address which is a multiple of alignment and is placed in *ptr.

rallocx

Resizes the previously-allocated memory region referenced by ptr to be at least size bytes.

realloc

Resizes the previously-allocated memory region referenced by ptr to size bytes.

sallocx

Returns the real size of the previously-allocated memory region referenced by ptr.

sdallocx

Deallocates previously-allocated memory region referenced by ptr with size hint.

xallocx

Resizes the previously-allocated memory region referenced by ptr in place to be at least size bytes, returning the real size of the allocation.

Type Definitions

extent_alloc_t

Extent allocation function.

extent_commit_t

Extent commit function.

extent_dalloc_t

Extent deallocation function.

extent_decommit_t

Extent decommit function.

extent_destroy_t

Extent destruction function.

extent_hooks_t

Extent lifetime management functions.

extent_merge_t

Extent merge function.

extent_purge_t

Extent purge function.

extent_split_t

Extent split function.